icontheme: use desired size instead of negative for DIR_UNTHEMED SVGs
authorCosimo Cecchi <cosimoc@gnome.org>
Mon, 23 Feb 2015 01:53:18 +0000 (17:53 -0800)
committerCosimo Cecchi <cosimoc@gnome.org>
Mon, 23 Feb 2015 17:56:06 +0000 (09:56 -0800)
When loading SVGs from ICON_THEME_DIR_UNTHEMED GtkIconInfos,
such as those created for a GLoadableIcon, the size of the pixbuf to
load is set as a product of icon_info->scale.
But a few lines above, icon_info->scale is set to -1 for
ICON_THEME_DIR_UNTHEMED GtkIconInfos, so we'll end up always passing a
negative size to the GdkPixbuf loader, which is interpreted as the
nominal size of the image file.
Instead load the SVG at the desired scaled size in that case.

This fixes blurry icon in the notification panel in gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=744991

gtk/gtkicontheme.c

index 2f45f63ce1270b53dbfe7333ce4fd7ccdc80d2ad..7e2f8ed42b5eb01425813432b7018644f530916c 100644 (file)
@@ -3859,7 +3859,7 @@ icon_info_ensure_scale_and_pixbuf (GtkIconInfo *icon_info)
         {
           gint size;
 
-          if (icon_info->forced_size)
+          if (icon_info->forced_size || icon_info->dir_type == ICON_THEME_DIR_UNTHEMED)
             size = scaled_desired_size;
           else
             size = icon_info->dir_size * dir_scale * icon_info->scale;
@@ -3889,7 +3889,7 @@ icon_info_ensure_scale_and_pixbuf (GtkIconInfo *icon_info)
             {
               gint size;
 
-              if (icon_info->forced_size)
+              if (icon_info->forced_size || icon_info->dir_type == ICON_THEME_DIR_UNTHEMED)
                 size = scaled_desired_size;
               else
                 size = icon_info->dir_size * dir_scale * icon_info->scale;